package ws

import (
	"github.com/gorilla/websocket"
	"time"
)

/*
-- Customer Client ----------------------------------------------
-- 客户端 Struct --
*/

// Client 客户端
type Client struct {
	UserID       string          // 用户ID
	Role         string          // 角色
	Socket       *websocket.Conn // Socket 链接
	Send         chan []byte     // 发送
	LastPingTime time.Time       // 长时间
}

// ClientManager 客服 Websocket 管理
type ClientManager struct {
	Clients    map[string]*Client // 客服
	Broadcast  chan TypeMsg       // 广播
	Register   chan *Client       // 注册
	Unregister chan *Client       // 未注册
}

/*
-- Customer Message ----------------------------------------------
-- 消息 Struct --
*/

// Message 消息内容
type Message struct {
	Sender    string `json:"sender"`     // 发送人
	Receiver  string `json:"receiver"`   // 接收者
	Content   string `json:"content"`    // 内容
	MsgType   string `json:"msg_type"`   // 对应msg表的msg_type
	Role      string `json:"role"`       // 角色
	Timestamp int64  `json:"timestamp"`  // 时间
	Nickname  string `json:"nickname"`   // 用户名
	AvatarUrl string `json:"avatar_url"` // 头像
	IsKf      int64  `json:"is_kf"`      // 是否是客服
}

// TypeMsg 消息分类
type TypeMsg struct {
	Type string      `json:"type"`           // 类型分类
	Data interface{} `json:"data,omitempty"` // 消息内容 Message 结构
}
